package com.teamsun.service;

import com.teamsun.entity.AccessIn;
import com.teamsun.entity.DBCfg;
import com.teamsun.entity.RptResult;

import java.util.List;
import java.util.Map;

/**
 * <p>报表管理服务接口</p>
 */
public interface IRptMgrService {

    /**
     * 分页查询报表信息
     * @param param 查询条件
     * @param startIndex 起始行
     * @param endIndex 结束行
     * @return
     */
    Map<String, Object> queryRptInfoByPage(Map<String, Object> param, int startIndex, int endIndex);

    /**
     * 根据数据库ID查询报表信息
     * @param rptDBId
     * @return
     */
    List<Map<String, Object>> queryRptByDBId(String rptDBId);

    /**
     * 根据接入系统查询报表信息
     * @param sysCode
     * @return
     */
    List<Map<String, Object>> queryRptByAccessIn(String sysCode);

    /**
     * 删除报表信息
     * @param param 删除条件
     */
    void deleteRptInfo(Map<String, Object> param);

    /**
     * 分页查询数据库配置信息
     * @param param 查询条件
     * @param startIndex 起始行
     * @param endIndex 结束行
     * @return
     */
    Map<String, Object> queryDBCfgByPage(Map<String, Object> param, int startIndex, int endIndex);

    /**
     * 根据数据库名称查询数据库配置信息
     * @param dbName
     * @return
     */
    List<DBCfg> queryDBCfgByDBName(String dbName);

    /**
     * 保存数据库配置信息
     * @param dbCfg
     */
    void addDBCfg(DBCfg dbCfg);

    /**
     * 修改数据库配置信息
     * @param dbCfg
     */
    void updateDBCfg(DBCfg dbCfg);

    /**
     * 删除数据库配置信息
     * @param param
     */
    void deleteDBCfg(Map<String, Object> param);

    /**
     * 分页报表接入系统信息
     * @param param 查询条件
     * @param startIndex 起始行
     * @param endIndex 结束行
     * @return
     */
    Map<String, Object> queryAccessInByPage(Map<String, Object> param, int startIndex, int endIndex);

    /**
     * 根据系统代码查询报表接入系统
     * @param sysCode
     * @return
     */
    List<AccessIn> queryAccessInByCode(String sysCode);

    /**
     * 删除报表接入系统
     * @param param
     */
    void deleteAccessIn(Map<String, Object> param);

    /**
     * 保存报表接入系统
     * @param accessIn
     */
    void addAccessIn(AccessIn accessIn);

    /**
     * 修改报表接入系统信息
     * @param accessIn
     */
    void updateAccessIn(AccessIn accessIn, boolean needUpdateRpt, String oldSysCode);

    /**
     * 修改报表接入系统Token
     * @param param
     */
    void updateSysToken(Map<String, Object> param);

    /**
     * 根据ID查询接入系统信息
     * @param sysId
     */
    List<AccessIn> queryAccessInById(String sysId);
}
